package cn.getech.data.development.model.vo;

import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 类目表下的表信息
 */
@Data
public class BdpDataCategoryTableInfoVO implements Serializable {

    private static final long serialVersionUID = 7083197742442827428L;

    @ApiModelProperty(value = "编号")
    @TableId
    private Integer id;

    @ApiModelProperty(value = "项目id")
    private String procId;

    @ApiModelProperty(value = "所属类目名称")
    private ArrayList<String> categoryName = new ArrayList<>();

    @ApiModelProperty(value = "数据库名称")
    private String dbName;

    @ApiModelProperty(value = "表名称")
    private String tableName;

    @ApiModelProperty(value = "表别名")
    private String tableAlias;

    @ApiModelProperty(value = "详情信息")
    private String desc;

    @ApiModelProperty(value = "创建人id")
    private Integer createPer;

    @ApiModelProperty(value = "创建人名称")
    private String userName;

    @ApiModelProperty(value = "数据库类型")
    private String typeid;

    @ApiModelProperty(value = "项目名称")
    private ArrayList<String> proName;

    @NotBlank(message = "项目名称")
    private String name;

    @NotBlank(message = "创建时间")
    @ApiModelProperty(value = "")
    @JsonFormat(timezone = "GMT+8", pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date createTime;

    @NotBlank(message = "项目描述")
    @TableField("`prodesc`")
    private String prodesc;

    @ApiModelProperty(value = "接受的表id")
    private ArrayList<String> tabinfoIds;

    @ApiModelProperty(value = "接受的类目id")
    private ArrayList<Integer> categoryIds;

    @ApiModelProperty(value = "")
    private String tabinfoId;

    @ApiModelProperty(value = "")
    private Integer categoryId;

    @ApiModelProperty(value = "")
    private Integer tableId;

    @ApiModelProperty(value = "表类型   1: 离线表 2:实时表", name = "tableType")
    private Integer tableType;

    @ApiModelProperty(value = "项目名称", name = "projectName")
    private String projectName;

    @ApiModelProperty(value = "项目名称", name = "projectNames")
    private List<String> projectNames;


    @ApiModelProperty(value = "realTableName", name = "realTableName")
    private String realTableName;

    @ApiModelProperty(value = "realDbName", name = "realDbName")
    private String realDbName;


    @ApiModelProperty(value = "tableDesc", name = "tableDesc")
    private String tableDesc;

    @ApiModelProperty(value = "proNames", name = "proNames")
    private String proNames;

    @ApiModelProperty(value = "categoryNames", name = "categoryNames")
    private String categoryNames;

    @ApiModelProperty(value = "存储引擎", name = "storeEngine 1 hive  2 kudo")
    private Integer storeEngine;


}
